SnowflakeユーザでMFA認証を設定しよう
データアナリティクス事業本部のnkhrです。
Snowflakeでは、ユーザごとにMFA認証を有効化できます。
Snowflakeアクセス制御についての考慮事項によると、管理者ユーザ(ACCOUNTADMIN ROLE利用)には、MFA認証の設定を強く推奨しています。設定すると幸せに過ごせるかもしれません。
公式サイトの手順はここを参照。
SnowflakeでのMFA認証方法
以下のいずれかの方法でMFA認証を行えます。個人的には、DUO Mobileアプリを利用してPush Notificationを受け取る方法が使いやすかったです。
- Approve Duo Push Notification
- Snowflake(Duo)からのPush通信を受け取ってApproveする。
- Call Me
- 電話がかかってきて、何かキーを押すとApproveできる。電話を切るとDenyとなる。
- Enter a passcode
- DUOアプリでPasscodeが取得できるのでコードを入力する
MFA設定手順
ユーザごとに設定が必要です。
2022/01時点では、システム的にMFA認証をユーザに強制できないため、MFA実施状況はGUIかSQL実行により確認する必要があります。GUIから確認する場合は、「アカウント>ユーザー>MFA」の列で「有効化済み」になっているか確認します。
Mobileアプリをインストール
携帯のアプリ検索で「DUO Mobile」を探し、インストールします。以下はiPhoneにインストールしたイメージです。
MFAの有効化
1. ログイン後に右上の[ユーザ名>設定]を選択
2. 多要素認証で「MFAに登録」リンクをクリック
3. DUO(MFA認証)初期設定
Start setupをクリック
今回は携帯にインストールしたDuo Mobileアプリを利用するため「Mobile phone」を選択
電話番号を入力(携帯番号の場合、+81以降の数字は先頭0を除いた番号です)
Duo Mobileをインストールした携帯の種別を選択(今回は「iPhone」選択)
アプリインストール済みかの確認メッセージが表示されるので「I have Duo Mobile installed」を選択(まだインストールしていない場合は先にインストールを実施)
QRコードの画面が表示されるので携帯の「DUO Mobile」アプリを立ち上げて、QRコードを読み込む
<以下は携帯側の画面>
「Got it」をクリック
「Use a QR code」をクリックして、Snowflakeコンソール上に表示されているQRコードを読み込む
任意の「Account name」を設定して「Save」をクリック
登録が完了するとAccount Linkedと表示される。Practice nowをクリックすると、MFA認証(Push notification)のApprove/Denyボタンクリック練習ができる。Skipも可能。
完了すると以下の画面がDUO Mobileアプリで表示される。ShowをクリックするとPasscodeでのMFA認証コードが表示可能。
<以下はSnowflakeコンソール側の画面>
携帯の設定が完了すると、Snowflakeコンソール上で設定完了したことが表示されるので「Continue」で次の画面を表示
「When I log in」のドロップダウンリストでは、ログイン時のMFA認証方法を選択
- Ask me to choose an authentication method
- ID/Pass入力後にMFA認証方法を選択する画面を表示(Push Notification/Call Me/Enter passcodeを選択可能)
- Automatically send this device a Duo Push
- 選択画面なしにPush通知(DUOアプリ側でApproveまたはDenyをクリック)
- Automatically call this device
- 選択画面なしに電話
最後にMFA認証の確認が行われる。Ask me to choose an authentication methodを選択している場合は、下図のような選択画面が表示されるので、好きな認証方法を選択
以上で設定完了です。
ユーザの設定画面では以下のように有効化が確認できます。
MFAの無効化
MFAはGUIから有効化できますが、無効化にはSQL実行が必要です。
ユーザのMFAを一時的に無効化
一定時間のみMFAを無効化できます。ユーザの作成をACCOUNTADMINで行っている場合はACCOUNTADMIN権限で実行する必要があります。(ユーザ作成はUSERADMINやSECURITYADMINで行えるのでそちらを使うと良いです)
ALTER USER IF EXISTS <username> SET MINS_TO_BYPASS_MFA = <integer of min>
MFA登録を解除
MFAの登録を無効化できます。無効化した場合は、再度MFA登録が必要になります。
ALTER USER IF EXISTS <username> SET DISABLE_MFA = TRUE;
まとめ
備えあれば憂いなしです。
以上、nkhrでした。